/**
 * 
 */
package gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;

import javax.swing.JButton;

import main.Controller;

import backend.FileChooser;
import backend.TextBausteine;
import backend.Xml;
import backend.ZauberVariante;

/**
 * @author Christian
 * @since 0.15c
 */
public class ImportController implements ActionListener {
	
	/**
	 * 
	 */
	private Import importPanel = null;
	
	/**
	 * 
	 */
	private File file = null;
	
	/**
	 * 
	 * @param importPanel
	 *            ImportPanel
	 */
	public ImportController(Import importPanel) {

		this.importPanel = importPanel;
	}
	
	/**
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 * 
	 * @param e
	 *            Event
	 */
	@Override
	@SuppressWarnings("unchecked")
	public void actionPerformed(ActionEvent e) {

		if (((JButton) e.getSource()).getText().equals("importieren")) {
			Xml xml = new Xml();
			if (file != null && xml.versionCheck(file)) {
				ArrayList[] list = xml.xmlLesen(file);
				for (Object variante : list[0]) {
					Controller.getDatenController().addTextbaustein((TextBausteine) variante);
				}
				for (Object variante : list[1]) {
					Controller.getDatenController().addZauberVariante((ZauberVariante) variante);
				}
				importPanel.getjInfoLabel().setText(
						"Es wurden " + (list[0].size() + list[1].size())
								+ " TextBausteine und Zaubervarianten hinzugefügt");
				return;
			}
			importPanel.getjInfoLabel().setText("Es muss eine gültige Datei ausgewählt werden");
		} else if (((JButton) e.getSource()).getText().equals("Datei auswählen")) {
			file = new FileChooser(importPanel).chooseFile(1);
			if (file != null) {
				importPanel.getjInfoLabel().setText(
						"Es wurde die Datei " + file.getName() + " ausgewählt.");
			} else {
				importPanel.getjInfoLabel()
						.setText("Es muss eine gültige Datei ausgewählt werden");
			}
		}
	}
}
